unit u_FiltroColheita;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dxCore, dxButton, ExtCtrls, MMJPanel, Grids, DBGrids,
  JvExDBGrids, JvDBGrid, FMTBcd, DB, DBClient, Provider, SqlExpr,
  rpcompobase, rpvclreport, Menus;

type
  Tf_FiltroColheita = class(TForm)
    JvDBGrid1: TJvDBGrid;
    MMJPanel1: TMMJPanel;
    btnFiltro: TdxButton;
    btnSair: TdxButton;
    dxButton4: TdxButton;
    JvDBGrid2: TJvDBGrid;
    s_Colheita: TSQLDataSet;
    s_ColheitaPGC_ID: TIntegerField;
    s_ColheitaPGC_IDCONTRATO: TIntegerField;
    s_ColheitaPGC_IDCOMPRADOR: TIntegerField;
    s_ColheitaPGC_IDEMPREITEIRO: TIntegerField;
    s_ColheitaPGC_DATAINI: TDateField;
    s_ColheitaPGC_DATAFIM: TDateField;
    s_ColheitaPGC_PRODUTO: TIntegerField;
    s_ColheitaPGC_QUTDE: TFloatField;
    s_ColheitaPGC_QUTDECX: TFloatField;
    s_ColheitaPGC_COTA: TFloatField;
    s_ColheitaVRC_TOTAL: TFloatField;
    s_ColheitaNTC_STATUS: TStringField;
    s_ColheitaCTR_N_CONTRATO: TStringField;
    s_ColheitaCOMPRADOR: TStringField;
    s_ColheitaEMPREITEIRO: TStringField;
    s_ColheitaPRO_DESCRICAO: TStringField;
    s_ColheitaPRODUTO: TStringField;
    p_Colheita: TDataSetProvider;
    ds_Colheita: TClientDataSet;
    ds_ColheitaPGC_ID: TIntegerField;
    ds_ColheitaPGC_IDCONTRATO: TIntegerField;
    ds_ColheitaPGC_IDCOMPRADOR: TIntegerField;
    ds_ColheitaPGC_IDEMPREITEIRO: TIntegerField;
    ds_ColheitaPGC_DATAINI: TDateField;
    ds_ColheitaPGC_DATAFIM: TDateField;
    ds_ColheitaPGC_PRODUTO: TIntegerField;
    ds_ColheitaPGC_QUTDE: TFloatField;
    ds_ColheitaPGC_QUTDECX: TFloatField;
    ds_ColheitaPGC_COTA: TFloatField;
    ds_ColheitaVRC_TOTAL: TFloatField;
    ds_ColheitaCTR_N_CONTRATO: TStringField;
    ds_ColheitaCOMPRADOR: TStringField;
    ds_ColheitaEMPREITEIRO: TStringField;
    ds_ColheitaPRO_DESCRICAO: TStringField;
    ds_ColheitaNTC_STATUS: TStringField;
    ds_ColheitaPRODUTO: TStringField;
    dsDtSrc: TDataSource;
    s_ColheitaPROPRIETARIO: TStringField;
    ds_ColheitaPROPRIETARIO: TStringField;
    dxButton1: TdxButton;
    s_Cotas: TSQLDataSet;
    s_CotasNTC_ID: TIntegerField;
    s_CotasCTR_ID: TIntegerField;
    s_CotasNTC_MOTORISTA: TIntegerField;
    s_CotasNTC_QUTDENF: TIntegerField;
    s_CotasNTC_FRETISTA: TIntegerField;
    s_CotasNTC_DATA: TDateField;
    s_CotasNTC_ENTRADA: TDateField;
    s_CotasNTC_SAIDA: TDateField;
    s_CotasNTC_STATUS: TStringField;
    s_CotasNTC_PRODUTO: TIntegerField;
    s_CotasNTC_PESOBRUTO: TFloatField;
    s_CotasNTC_REFUGO: TFloatField;
    s_CotasNTC_OUTROS: TFloatField;
    s_CotasNTC_PESOTARA: TFloatField;
    s_CotasNTC_PESOLIQUIDO: TFloatField;
    s_CotasNTC_USUARIOPORTARIA: TIntegerField;
    s_CotasNTC_USUARIOBALANCA: TIntegerField;
    s_CotasNTC_IDCOMPRA: TIntegerField;
    s_CotasNOMETRANSP: TStringField;
    s_CotasCODTRANSP: TIntegerField;
    s_CotasPLACATRANSP: TStringField;
    s_CotasCNPJ_CPF: TStringField;
    s_CotasCODPRODUTO: TIntegerField;
    s_CotasCODPRO: TStringField;
    s_CotasPRODUTO: TStringField;
    s_CotasCTR_N_CONTRATO: TStringField;
    s_CotasPGC_ID: TIntegerField;
    p_Cotas: TDataSetProvider;
    ds_Cotas: TClientDataSet;
    ds_CotasNTC_ID: TIntegerField;
    ds_CotasCTR_ID: TIntegerField;
    ds_CotasNTC_MOTORISTA: TIntegerField;
    ds_CotasNTC_QUTDENF: TIntegerField;
    ds_CotasNTC_FRETISTA: TIntegerField;
    ds_CotasNTC_DATA: TDateField;
    ds_CotasNTC_ENTRADA: TDateField;
    ds_CotasNTC_SAIDA: TDateField;
    ds_CotasNTC_STATUS: TStringField;
    ds_CotasNTC_PRODUTO: TIntegerField;
    ds_CotasNTC_PESOBRUTO: TFloatField;
    ds_CotasNTC_REFUGO: TFloatField;
    ds_CotasNTC_OUTROS: TFloatField;
    ds_CotasNTC_PESOTARA: TFloatField;
    ds_CotasNTC_PESOLIQUIDO: TFloatField;
    ds_CotasNTC_USUARIOPORTARIA: TIntegerField;
    ds_CotasNTC_USUARIOBALANCA: TIntegerField;
    ds_CotasNTC_IDCOMPRA: TIntegerField;
    ds_CotasNOMETRANSP: TStringField;
    ds_CotasCODTRANSP: TIntegerField;
    ds_CotasPLACATRANSP: TStringField;
    ds_CotasCNPJ_CPF: TStringField;
    ds_CotasCODPRODUTO: TIntegerField;
    ds_CotasCODPRO: TStringField;
    ds_CotasPRODUTO: TStringField;
    ds_CotasCTR_N_CONTRATO: TStringField;
    ds_CotasPGC_ID: TIntegerField;
    ds1: TDataSource;
    VCLReport1: TVCLReport;
    pm1: TPopupMenu;
    ImprimirConsulta1: TMenuItem;
    ImprimirEtiquetas1: TMenuItem;
    pm2: TPopupMenu;
    NovaProgramao1: TMenuItem;
    EditarProgramao1: TMenuItem;
    dxButton2: TdxButton;
    dxButton3: TdxButton;
    s_ColheitaFOR_ID: TIntegerField;
    ds_ColheitaFOR_ID: TIntegerField;
    procedure btnFiltroClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btnSairClick(Sender: TObject);
    procedure dxButton4Click(Sender: TObject);
    procedure ImprimirEtiquetas1Click(Sender: TObject);
    procedure dxButton1Click(Sender: TObject);
    procedure ImprimirConsulta1Click(Sender: TObject);
    procedure JvDBGrid1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure JvDBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure JvDBGrid1DblClick(Sender: TObject);
    procedure JvDBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure JvDBGrid1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure NovaProgramao1Click(Sender: TObject);
    procedure EditarProgramao1Click(Sender: TObject);
    procedure dxButton2Click(Sender: TObject);
    procedure dxButton3Click(Sender: TObject);
  private
    var_consulta : string;
    { Private declarations }
  public
    procedure mostracolheita;
    { Public declarations }
  end;

var
  f_FiltroColheita: Tf_FiltroColheita;

implementation

uses UDm, u_FiltroContrato, uDmCitrus, u_PlanoColheita, u_Contratos,
  uFornecedorCadastro;

{$R *.dfm}

procedure Tf_FiltroColheita.btnFiltroClick(Sender: TObject);
begin
  f_FiltroContrato := Tf_FiltroContrato.Create(Application);
  try
    f_FiltroContrato.ShowModal;
  finally
    f_FiltroContrato.Free;
  end;
  mostracolheita;
end;

procedure Tf_FiltroColheita.FormShow(Sender: TObject);
begin
  DmCitrus.var_Status := 'EM ABERTO';
  mostracolheita;
end;

procedure Tf_FiltroColheita.mostracolheita;
var
  var_TXT, TXTSQL, TXT_INI, TXT_FIM : string;
begin
  TXTSQL := '';
  var_TXT := 'select  g.*, c.FOR_ID, c.CTR_N_CONTRATO, fc.NOMEFORNECEDOR as COMPRADOR, ' +
           'f.NOMEFORNECEDOR as EMPREITEIRO,p.PRO_DESCRICAO,pr.PRODUTO, ' +
           'fo.NOMEFORNECEDOR as PROPRIETARIO  from PROGCOLHEITA g ' +
           'inner join CONTRATOS c on c.CTR_ID = g.PGC_IDCONTRATO ' +
           'inner join PROPRIEDADES p on p.PRO_ID = c.PRO_ID ' +
           'left outer join PRODUTOS pr on pr.CODPRODUTO = g.PGC_PRODUTO ' +
           'left outer join FORNECEDOR fc on fc.CODFORNECEDOR = c.CTR_COMPRADOR ' +
           'left outer join FORNECEDOR f on f.CODFORNECEDOR = c.CTR_TURMEIRO ' +
           'left outer join FORNECEDOR fo on fo.CODFORNECEDOR = c.FOR_ID ';


  if ((DmCitrus.var_DATA1 <> '  /  /    ') and (DmCitrus.var_DATA2 <> '  /  /    ')
     and (DmCitrus.var_DATA1 <> '')) then
  begin
     TXTSQL := 'WHERE g.PGC_DATAINI between ' + FormatDateTime('mm/dd/yyyy', StrToDate(DmCitrus.var_DATA1));
     TXTSQL := TXTSQL + ' and ' + FormatDateTime('mm/dd/yyyy', StrToDate(DmCitrus.var_DATA2));
  end;

  if (DmCitrus.var_Status <> '') then
  begin
    if (TXTSQL = '') then
      TXTSQL := 'Where g.NTC_STATUS = ' + QuotedStr(DmCitrus.var_Status)
    else
      TXTSQL := TXTSQL + ' and g.NTC_STATUS = ' + QuotedStr(DmCitrus.var_Status);
  end;

  if (DmCitrus.var_PROPRIETARIO <> '') then
  begin
    if (TXTSQL = '') then
      TXTSQL := 'Where c.FOR_ID = ' + DmCitrus.var_PROPRIETARIO
    else
      TXTSQL := TXTSQL + ' and c.FOR_ID = ' + DmCitrus.var_PROPRIETARIO;
  end;

  if (DmCitrus.var_PROPRIEDADE <> '') then
  begin
    if (TXTSQL = '') then
      TXTSQL := 'Where c.PRO_ID = ' + DmCitrus.var_PROPRIEDADE
    else
      TXTSQL := TXTSQL + ' and c.PRO_ID = ' + DmCitrus.var_PROPRIEDADE;
  end;

  if (DmCitrus.var_COMPRADOR <> '') then
  begin
    if (TXTSQL = '') then
      TXTSQL := 'Where c.CTR_COMPRADOR = ' + DmCitrus.var_COMPRADOR
    else
      TXTSQL := TXTSQL + ' and c.CTR_COMPRADOR = ' + DmCitrus.var_COMPRADOR;
  end;

   if (DmCitrus.var_CONTRATO <> '') then
  begin
    if (TXTSQL = '') then
      TXTSQL := 'Where c.CTR_N_CONTRATO = ' + QuotedStr(DmCitrus.var_CONTRATO)
    else
      TXTSQL := TXTSQL + ' and c.CTR_N_CONTRATO = ' + QuotedStr(DmCitrus.var_CONTRATO);
  end;

 { if (TXTSQL = '') then
    TXTSQL := 'Where g.NTC_STATUS <> ' + QuotedStr('FINALIZADA')
  else
    TXTSQL := TXTSQL + ' and g.NTC_STATUS <> ' + QuotedStr('FINALIZADA');
  }
  TXT_FIM :=  ' order by PGC_ID DESC, c.CTR_COMPRADOR, c.CTR_N_CONTRATO ';

  var_consulta := var_TXT + TXTSQL + TXT_FIM;

  if (ds_Colheita.Active) then
     ds_Colheita.Close;
  ds_Colheita.CommandText := var_TXT + TXTSQL + TXT_FIM;
  ds_Colheita.Open;

  if (ds_Cotas.Active) then
      ds_Cotas.Close;
  ds_Cotas.Params[0].AsInteger := ds_ColheitaPGC_ID.AsInteger;
  ds_Cotas.Open;

end;

procedure Tf_FiltroColheita.btnSairClick(Sender: TObject);
begin
  close;
end;

procedure Tf_FiltroColheita.dxButton4Click(Sender: TObject);
var
   XY: TPoint;
begin
     XY := Point(50, -10);
     XY := dxButton4.ClientToScreen(XY);
     pm2.Popup(XY.X, XY.Y + dxButton4.Height - 2);
end;

procedure Tf_FiltroColheita.ImprimirEtiquetas1Click(Sender: TObject);
begin
    VCLReport1.FileName := str_relatorio + 'NPF.rep';
    VCLReport1.Report.Params.ParamByName('ID').Value := ds_ColheitaPGC_ID.AsInteger;
    VCLReport1.Execute;
end;

procedure Tf_FiltroColheita.dxButton1Click(Sender: TObject);
var
   XY: TPoint;
begin
     XY := Point(50, -10);
     XY := dxButton1.ClientToScreen(XY);
     pm1.Popup(XY.X, XY.Y + dxButton1.Height - 2);
end;

procedure Tf_FiltroColheita.ImprimirConsulta1Click(Sender: TObject);
begin

    VCLReport1.FileName := str_relatorio + 'progcolheita.rep';
    VCLReport1.Report.DatabaseInfo.Items[0].SQLConnection := dm.sqlsisAdimin;
    VCLReport1.Report.DataInfo.Items[0].SQL:= var_consulta;
    VCLReport1.Execute;
end;

procedure Tf_FiltroColheita.JvDBGrid1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if (ds_Cotas.Active) then
      ds_Cotas.Close;
  ds_Cotas.Params[0].AsInteger := ds_ColheitaPGC_ID.AsInteger;
  ds_Cotas.Open;
end;

procedure Tf_FiltroColheita.JvDBGrid1MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if (ds_Cotas.Active) then
      ds_Cotas.Close;
  ds_Cotas.Params[0].AsInteger := ds_ColheitaPGC_ID.AsInteger;
  ds_Cotas.Open;
end;

procedure Tf_FiltroColheita.JvDBGrid1DblClick(Sender: TObject);
begin
  if (ds_Cotas.Active) then
      ds_Cotas.Close;
  ds_Cotas.Params[0].AsInteger := ds_ColheitaPGC_ID.AsInteger;
  ds_Cotas.Open;
end;

procedure Tf_FiltroColheita.JvDBGrid1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  if (ds_Cotas.Active) then
      ds_Cotas.Close;
  ds_Cotas.Params[0].AsInteger := ds_ColheitaPGC_ID.AsInteger;
  ds_Cotas.Open;
end;

procedure Tf_FiltroColheita.JvDBGrid1KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if (ds_Cotas.Active) then
      ds_Cotas.Close;
  ds_Cotas.Params[0].AsInteger := ds_ColheitaPGC_ID.AsInteger;
  ds_Cotas.Open;
end;

procedure Tf_FiltroColheita.NovaProgramao1Click(Sender: TObject);
begin
   DM.ID_CONTRATO := 0;
   f_PlanoColheita := Tf_PlanoColheita.Create(Application);
   try
      f_PlanoColheita.ShowModal;
   finally
      f_PlanoColheita.Free;
   end;
  DmCitrus.var_Status := 'EM ABERTO';
  mostracolheita;
end;

procedure Tf_FiltroColheita.EditarProgramao1Click(Sender: TObject);
begin
   DM.ID_CONTRATO := ds_ColheitaPGC_IDCONTRATO.AsInteger;
   DM.ID_PROGCOLHEITA := ds_ColheitaPGC_ID.AsInteger;
   DM.ID_PROGCOLHEITA1 := 0;
   f_PlanoColheita := Tf_PlanoColheita.Create(Application);
   try
      f_PlanoColheita.ShowModal;
   finally
      f_PlanoColheita.Free;
   end;
  DmCitrus.var_Status := 'EM ABERTO';
  mostracolheita;
end;

procedure Tf_FiltroColheita.dxButton2Click(Sender: TObject);
begin
   DM.ID_FORNECEDOR := 0;
   if (not ds_Colheita.IsEmpty) then
   begin
     DM.ID_FORNECEDOR := ds_ColheitaFOR_ID.AsInteger;
     f_Contratos := Tf_Contratos.Create(Application);
     try
        f_Contratos.btn4.Enabled := True;
        f_Contratos.ShowModal;
     finally
        f_Contratos.Free;
     end;
   end;
end;

procedure Tf_FiltroColheita.dxButton3Click(Sender: TObject);
begin
  DmCitrus.var_segmento := 3;
  DmCitrus.var_regiao   := 1;
  fFornecedorCadastro := TfFornecedorCadastro.Create(Application);
  try
    fFornecedorCadastro.ShowModal;
  finally
    fFornecedorCadastro.Free;
  end;
end;

end.
